
#pragma once
#include "IState.h"

// SGD Wrappers
#include "../SGD Wrappers/CSGD_Direct3D.h"
#include "../SGD Wrappers/CSGD_DirectInput.h"
#include "../SGD Wrappers/CSGD_TextureManager.h"
#include "../SGD Wrappers/CSGD_XAudio2.h"

//Font
#include "TempFont.h"

#define WORLDITEMS 5
#define WORLDMENUITEMS 6

class CWorldSelectionState : public IState
{
public:
	CWorldSelectionState(void);
	virtual ~CWorldSelectionState(void);

	// Wrapper Pointers
	CSGD_Direct3D*						m_3DGuy;
	CSGD_DirectInput*					m_InputGuy;
	CSGD_TextureManager*		m_TextureGuy;
	CSGD_XAudio2*							m_AudioGuy;

	// Font DMs
	CTempFont*		m_MenuFont;

	// Asset IDs
	int							m_nMenuWizardID;
	int							m_nBackGroundID;
	int							m_nOptionsBoxID;

	// Menu DMs
	int			m_nSelectedItem;
	bool		m_MenuSelection[WORLDMENUITEMS];
	char*		m_szMenuItem[WORLDMENUITEMS];
	RECT		m_MenuRect[WORLDMENUITEMS];
	
	// Misc Functions
	void		Mouseinthebox();

public:
	// SINGLETON
	static CWorldSelectionState* GetInstance( void );

	// EnE Functions
	virtual void Enter(void);			//Load Resources
	virtual void Exit(void);				//Unload Resources
	
	// Running Functions
	virtual bool Input(void);			//Handle user input
	virtual void Update(float fElapsedTime);		//Update game tokens
	virtual void Render(void) ;		//Render game tokens
};

